Array VOPs

alloc-bit-vector alloc-i-vector alloc-string alloc-g-vector Initialized and uninitialized versions?

length (sequence) => size small, fast length/vector small, fast length/simple-vector small, fast length/simple-string small, fast length/simple-bit-vector

aref1 (vector index) => value small, fast aref1/simple-vector small, fast aref1/simple-string small, fast aref1/simple-bit-vector small, fast aref1/simple-array-XXX-float

aset1 (vector index new-value) small, fast aset1/simple-vector small, fast aset1/simple-string small, fast aset1/simple-bit-vector small, fast aset1/simple-array-XXX-float

small, fast aref1/simple-array-unsigned-byte (vector index) => value small, fast aset1/simple-array-unsigned-byte (vector index new-value) Byte size is codegen info.

aref<N> (array index0 ... index<n-1>) => value aset<N> (array index0 ... index<n-1> new-value) For some small value of N. Of course, higher dimensional arrays can also be specialized in seven different ways.... Multi-dimensional simple array reference with known dimensions can be open-coded using a transform (useful for benchmarks.)